/**
All the work to model the room's walls and floor is done here.
*/
#include "Imposters.h"

#define ROOMX (IMPOSTERS_X / 2)
#define ROOMY (IMPOSTERS_Y / 2)  
#define ROOMZ (IMPOSTERS_Z / 2)  

// Door's Dimensions
#define DOOR_DIM_X (ROOMX / 2)
#define DOOR_DIM_Y (ROOMY / 2)
// Door's Position
#define DOOR_X 0.0
#define DOOR_Y 0.0
#define DOOR_Z -ROOMZ

// Window's Dimensions
#define WINDOW_DIM_Y (ROOMY * 3 / 4)
#define WINDOW_DIM_Z (ROOMZ * 3 / 4)

#define WALL_SLICES 20
#define PI 3.1418

// Floor Properties
#define FLOOR_SLICES 200

extern GLfloat mat_floor_ambient[4];
extern GLfloat mat_floor_diffuse[4];
extern GLfloat mat_floor_specular[4];
extern GLfloat mat_floor_shininess[1];

void draw_door_wall();
void draw_window_wall();
void draw_viewer_wall();
void draw_walls();
void draw_floor();
void fill_curved_array();